package com.Questions.DFS;


/**
 * 平衡二叉树
 */
public class leetcode110 {
    public boolean isBalanced(TreeNode root) {
        // 左子树和右子树得高度差得绝对值不超过一

        // 如果 返回到根节点得深度不相同 那么返回-1
        // 否则返回结点得深度
        if(root==null){
            return true;
        }
        return helper(root)!=-1;
    }
    public int helper(TreeNode root){
        if(root==null){
            return 0;
        }
        int left=helper(root.left);
        int right=helper(root.right);
        if(left==-1||right==-1||Math.abs(left-right)>1){
            return -1;
        }
        return Math.max(left,right)+1;
    }
}
